package main

import (
	"log"
	"net"
	"os"
)

func main() {
	//1. 请求与服务器建立连接
	conn, err := net.Dial("tcp", "127.0.0.1:8888") //请求发送后，操作系统帮助建立三次握手
	if err != nil {
		log.Panic("failed to Dial", err)
	}
	defer conn.Close()
	//2. 建立连接循环通信
	buf := make([]byte, 256)
	//模拟nc客户端： 1. 读取标准输入 2. 将读取内容写给网络 3. 读网络内容 4。 打印到标准输出
	for {
		n, _ := os.Stdin.Read(buf)
		if n > 0 {
			conn.Write(buf[:n])
			//读网络
			n, _ = conn.Read(buf)
			//写到屏幕
			os.Stdout.Write(buf[:n])
		}
	}
}
